<h1>
	Timed Code Execution
</h1>

<div id="timed-code" class="sect">
	<h2>
		TaskMgr &amp; TaskRunner
	</h2>
	<p>
		Task
		Runner是一个以特定时间为间隔然后执行函数的类。这对进行“拉（pull）”的操作是比较有用的，例如每30秒的间隔刷新内容（Ajax）。TaskMgr对象是TaslRunner的单例，这样使用起这个Task
		Runner便很快了。
		<pre>
var stop = false;
var task = {
    run: function(){
        if(!stop){
            alert(new Date());
        }else{
            runner.stop(task); <span class="comment">//有需要的话这里我们也能停止任务.</span>
        }
    },
    interval: 30000 <span class="comment">// every 30 seconds</span>
};
var runner = new Ext.util.TaskRunner();
runner.start(task);

<span class="comment">//使用TaskMgr</span>
Ext.TaskMgr.start({
    run: function(){
    },
    interval: 1000
});
</pre>
	</p>
</div>

<div id="delayed-task" class="sect">
	<h2>
		DelayedTask
	</h2>
	<p>
		DelayedTask就是提供一个快捷的方式达到“缓冲”某个函数执行的目的。调用它之后，那个函数就会等待某段时间过去以后才会被执行。在此等待的期间中，如果task方法再被调用，原来的调用计时就会被取消。因此每一周期内最好只调用task方法一次。譬如在用户是否完成输入的情景，这方法可适用：


		<pre>
 var task = new Ext.util.DelayedTask(function(){
     alert(Ext.getDom('myInputField').value.length);
 });
 <span class="comment">// 调用函数之前等待500ms，如果用户在500ms内按下其他的键，这就会等于作废，重新开始500ms的计算。</span>
 Ext.get('myInputField').on('keypress', function(){
     task.delay(500); 
 });
 </pre>
							注意我们这里是为了指出DelayedTask的用途。登记事件的同时也能对addListener/on的配置项设置DelayedTask其参数的。

	</p>
</div>
